//
// Created by Administrator on 2022/1/10.
// 1. 不要将硬编码赋值给指针
// 2. 空指针NULL的用法
// 3. 注意避免产生野指针
//

#include <stdio.h>

int *pointer_globe;

void DangerSituation() {
    int a = 1;
    //The address of the local variable may escape the function
    //函数执行完毕，内存立马被回收，指针此时指了个寂寞
    //俗称：野指针
    pointer_globe = &a;
}

int main() {
//    int *p = (int *) 100;//危险，危险，危险
//    printf("%d\n", p);
//    printf("%p\n", p);
//    printf("%p\n", &p);
    //NULL是一个C语言的宏，value是0，赋值为NULL的含义为：只是标记变量，但是不会在内存中去划分空间，即不可进行赋值，类比于java的NullPointer
//    int *p = NULL;
    //Pointer may be null
//    *p = 1;
    //判断指针的方式
//    if (p) {
//        printf("自己的逻辑");
//    }
    printf("%p\n", pointer_globe);
    return 0;
}